1
Blueprint untuk Kode Generik
AI037Lesson 18
00:00

Bayangkan Anda seorang arsitek. Alih-alih menggambar denah tetap untuk satu rumah bata, Anda merancang sebuah blueprint utama blueprint yang dapat beradaptasi dengan kayu, baja, atau kaca. Dalam C++, hal ini disebut Pemrograman Generik.

1. Mekanisme Blueprint

Sebuah daftar parameter template (misalnya, template <typename T>) memperkenalkan tempat kosong yang disebut parameter tipe template. Ini bertindak sebagai variabel untuk tipe. Misalnya, dalam template <typename T> ostream &print(ostream &os, const T &obj), T ditentukan hanya saat fungsi dipanggil.

2. Instansiasi

Compiler tidak mengompilasi template itu sendiri menjadi kode mesin. Sebaliknya, instansiasi terjadi: compiler menghasilkan versi spesifik dari kode hanya saat diberikan argumen template yang konkret. Karena alasan ini, definisi biasanya harus berada di file header.

Blueprintcompare<T>compare(int)compare(vector)Kesalahan: Sales_data

3. Menulis Kode Bebas Tipe

Untuk memaksimalkan kemampuan digunakan kembali, ikuti Praktik Terbaik: minimalisasi persyaratan. Menulis kode menggunakan hanya operator < operator (melalui less<T>) mengurangi persyaratan terhadap tipe dibandingkan menggunakan >, <=, dan >=. Validasi sering ditunda; compiler umumnya tidak dapat menemukan banyak kesalahan pada tahap kompilasi template itu sendiri; kebanyakan muncul selama instansiasi.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>